package hopital.orm;

import hopital.sql.SqlObject;
import hopital.sql.SqlQuery;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class Consultation extends SqlObject{
    
    private int _docteur,_patient ;
    private String _date,_maladie ,_ordonnance ,_remarque,_etat;

    public String getMaladie() {
        return _maladie;
    }

    public void setMaladie(String _maladie) {
        this._maladie = _maladie;
    }

    public String getOrdonnance() {
        return _ordonnance;
    }

    public void setOrdonnance(String _ordonnance) {
        this._ordonnance = _ordonnance;
    }

    public String getRemarque() {
        return _remarque;
    }

    public void setRemarque(String _remarque) {
        this._remarque = _remarque;
    }

    public String getEtat() {
        return _etat;
    }

    public void setEtat(String _etat) {
        this._etat = _etat;
    }
    
    public int getDocteur() {
        return _docteur;
    }

    public void setDocteur(int _docteur) {
        this._docteur = _docteur;
    }

    public int getPatient() {
        return _patient;
    }

    public void setPatient(int _patient) {
        this._patient = _patient;
    }

    public String getDate() {
        return _date;
    }

    public void setDate(String _date) {
        this._date = _date;
    }

    public Consultation(int _docteur, int _patient, String _date, String _maladie, String _ordonnance, String _remarque) {
        this._docteur = _docteur;
        this._patient = _patient;
        this._date = _date;
        this._maladie = _maladie;
        this._ordonnance = _ordonnance;
        this._remarque = _remarque;
    }

   


    

    public Consultation() {
    }

    
    
    private Consultation(ResultSet _rs) throws SQLException {
       this(_rs.getInt("c_docteur"), _rs.getInt("c_patient"), _rs.getString("c_date"),_rs.getString("c_maladie"),_rs.getString("c_ordonnance"),_rs.getString("c_remarque"));
       this._id=_rs.getInt("c_id");
    }
    
    @Override
    public SqlQuery insert() {
        return new SqlQuery("INSERT INTO t_consultations (c_docteur,c_patient,c_date,c_maladie ,c_ordonnance ,c_remarque) VALUES(?,?,?,?,?,?);",_docteur,_patient,_date,_maladie ,_ordonnance ,_remarque);
    }

    @Override
    public SqlQuery update() {
        return new SqlQuery("UPDATE t_consultations SET c_etat=? WHERE c_id=?;",_id,_etat);
    }

    @Override
    public SqlQuery delete() {
        return new SqlQuery("DELETE FROM t_consultations WHERE c_id=?;", _id);
    }

    @Override
    public SqlQuery select() {
        if(_id!=-1){
            return new SqlQuery("SELECT * FROM t_consultations WHERE c_id=?;", _id);
        }else if(_patient!=0){
            return new SqlQuery("SELECT * FROM t_consultations WHERE c_patient=?;", _patient);
        }else{
            return new SqlQuery("SELECT * FROM t_consultations;");
        }
    }

    @Override
    public List<Object> getTable(ResultSet _rs) throws Exception {
        List<Object> list=new ArrayList<>();
        while (_rs.next()) {            
            list.add(new Consultation(_rs));
        }
        return list;
    }
}
